import 'package:intl/intl.dart';

class DateFormatter {
  // 解析后端返回的日期时间字符串
  static DateTime? parseDateTime(String dateTimeStr) {
    try {
      return DateFormat('yyyy-MM-dd HH:mm:ss').parse(dateTimeStr);
    } catch (e) {
      print('解析日期失败: $dateTimeStr, 错误: $e');
      return null;
    }
  }

  // 格式化为列表显示格式：年月日 + 星期
  // 例如：2025-11-02 周六
  static String formatForList(String dateTimeStr) {
    final dateTime = parseDateTime(dateTimeStr);
    if (dateTime == null) return dateTimeStr;

    final dateFormat = DateFormat('yyyy-MM-dd');

    // 直接使用weekday数字映射到中文,避免需要locale初始化
    final weekdayMap = {
      1: '周一',  // Monday
      2: '周二',  // Tuesday
      3: '周三',  // Wednesday
      4: '周四',  // Thursday
      5: '周五',  // Friday
      6: '周六',  // Saturday
      7: '周日',  // Sunday
    };

    final weekdayChinese = weekdayMap[dateTime.weekday] ?? '';

    return '${dateFormat.format(dateTime)} $weekdayChinese';
  }

  // 格式化为详情显示格式：完整日期时间
  // 例如：2025-11-02 15:30:15
  static String formatForDetail(String dateTimeStr) {
    final dateTime = parseDateTime(dateTimeStr);
    if (dateTime == null) return dateTimeStr;

    return DateFormat('yyyy-MM-dd HH:mm:ss').format(dateTime);
  }
}
